77 #define SLAVE_ADDRESS 0x48
91 #define CS_SMCLK_DESIRED_FREQUENCY_IN_KHZ 1000
98 #define CS_SMCLK_FLLREF_RATIO 30
103 WDT_A_hold(WDT_A_BASE);
137 GPIO_setAsPeripheralModuleFunctionInputPin(
139 GPIO_PIN2 + GPIO_PIN3,
140 GPIO_PRIMARY_MODULE_FUNCTION
160 EUSCI_B_I2C_initMasterParam
param = {0};
161 param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
162 param.i2cClk = CS_getSMCLK();
163 param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
165 param.autoSTOPGeneration = EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD;
166 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &
param);
169 EUSCI_B_I2C_setSlaveAddress(EUSCI_B0_BASE,
174 EUSCI_B_I2C_setMode(EUSCI_B0_BASE,
175 EUSCI_B_I2C_RECEIVE_MODE
179 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
181 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
182 EUSCI_B_I2C_RECEIVE_INTERRUPT0 +
183 EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
184 EUSCI_B_I2C_NAK_INTERRUPT
188 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
189 EUSCI_B_I2C_RECEIVE_INTERRUPT0 +
190 EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
191 EUSCI_B_I2C_NAK_INTERRUPT
198 while (EUSCI_B_I2C_SENDING_STOP ==
199 EUSCI_B_I2C_masterIsStopSent(EUSCI_B0_BASE));
201 EUSCI_B_I2C_masterReceiveStart(EUSCI_B0_BASE);
204 __bis_SR_register(CPUOFF+GIE);
208 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
209 #pragma vector=USCI_B0_VECTOR
211 #elif defined(__GNUC__)
212 __attribute__((interrupt(USCI_B0_VECTOR)))
216 static uint8_t count = 0;
217 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG))
221 case USCI_I2C_UCALIFG:
223 case USCI_I2C_UCNACKIFG:
224 EUSCI_B_I2C_masterReceiveStart(EUSCI_B0_BASE);
226 case USCI_I2C_UCSTTIFG:
228 case USCI_I2C_UCSTPIFG:
230 case USCI_I2C_UCRXIFG3:
232 case USCI_I2C_UCTXIFG3:
234 case USCI_I2C_UCRXIFG2:
236 case USCI_I2C_UCTXIFG2:
238 case USCI_I2C_UCRXIFG1:
240 case USCI_I2C_UCTXIFG1:
242 case USCI_I2C_UCRXIFG0:
244 RXData = EUSCI_B_I2C_masterReceiveSingle(
252 case USCI_I2C_UCTXIFG0:
254 case USCI_I2C_UCBCNTIFG:
255 GPIO_toggleOutputOnPin(
260 case USCI_I2C_UCCLTOIFG:
262 case USCI_I2C_UCBIT9IFG:
#define CS_SMCLK_FLLREF_RATIO
#define CS_SMCLK_DESIRED_FREQUENCY_IN_KHZ
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)